Java中十六进制字符串转十进制数字并输出 |
您所在的位置:网站首页 › java 开头 › Java中十六进制字符串转十进制数字并输出 |
首先,java中16进制是以0x开头的。 现在有一个问题: 16进制中a-10 ,b-11....f-15 首先要明白16进制是如何转为10进制的:从右向左,字母或者数字依次乘以16的幂(幂是从0开始) 这是就有人会说:那不好办?直接来一个for循环,遍历字符串,从前往后,依次获取,把字符强转为int型 减去相应的值,(A对应的ASCII值为65,a对应的ascii值为97)再乘以幂不就行了? 不好意思。 如果有小写,阁下该如何应对呢? 如果数字穿插,阁下又该如何应对呢? 如果阁下处理字母时,还判断是否为大小写,我只能说,阁下有些多此一举了。 为何不全部转为大写,或者全部转为小写呢? 我这里全部转为大写了。 然后除了字符串开头的"0x",其余的都转为int,是不是就行了? 我之前说过,不只有字母,还有数字哩。 那么,小编在这里提问大家一个问题: 请问输出结果是什么? 说0的话,那可就g了。 正确答案: 那么,也就是说,我们要判断,里面的字符到底是字母,还是数字。 怎么判断呢? 用Ascii值,我觉得可以。 这个判断是否为字母:接下来,我们要乘16的幂。 这时就用到了Math.pow()函数。 pow()中有两个参数。第一个为底数,第二个参数为指数。 但是for循环里面是从最后一位开始判断的,而幂是从0开始的。所以我们要再定义一个变量j,从0开始递增。 代码如下: 输出结果: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |